import { MenuDataItem } from '@ant-design/pro-layout';
import { iconToElement } from '@/system/utils/CommonUtils';

let defaultConfig = {
  // 标题
  title: '后台管理',
  // 左上角 logo 的 url
  logo: '/logo.png',
  // 顶部导航栏的主题
  headerTheme: 'light',
  // 导航的主题，side 和 mix 模式下是左侧菜单的主题，top 模式下是顶部菜单
  navTheme: 'light',
  // layout 的加载态
  loading: false,
  // 布局设置 side top mix
  layout: 'mix',
  // 菜单切割，mix专属
  splitMenus: true,
  // 动态菜单设置
  menu: {},
  // 透传的系统水印
  waterMarkProps: {
    content: "系统水印"
  },
  // 删除全部自带页面
  pure: false
};

/**
 * 默认动态配置读取
 * route 菜单路由
 */
export const getLayoutConfig = async (setting: any, isLogin: boolean, route: Array<MenuDataItem>) => {
  // 构造图标
  const forRoute = (dataArray: any) => {
    if (dataArray == null) {
      return;
    }
    dataArray.forEach((item: any) => {
      if (item.hasOwnProperty('icon')) {
        item.icon = iconToElement(item.icon);
      } else if (item.hasOwnProperty('routes')) {
        forRoute(item.routes);
      }
    });
  };
  forRoute(route);
  // 合并配置
  Object.assign(defaultConfig, setting);
  // 通过路由加载菜单
  defaultConfig.menu = {
    request: async () => {
      return route;
    },
  };
  return defaultConfig;
};
